require("knitr")
knitr::opts_chunk$set(warning=FALSE, message=FALSE)

###############
# Carbon and Nitrogen Isotopic Analysis of Individual Amino Acids in Montipora capitata
# Author: C. Wall
# Collaborators: Brian Popp, Ruth Gates
# Institution: University of Hawai'i at Mānoa
###############

# load packages
library(devtools)
install_github("ggbiplot", "vqv")
library(ggbiplot)
require(graphics)
library(dplyr)
library("effects")
library(plyr)
library(plotrix)
library("cowplot")

Carbon

Carbon in amino acids of plankton, Symbiodinium and coral host tissues.

######## ######## 
## Carbon 
######## ######## 
rm(list=ls())
d13C.dat<-read.csv("data/d13C.CSIA.wide.csv") # wide form carbon data

colnames(d13C.dat)
d13C.dat$Fraction<-factor(d13C.dat$Fraction, levels=c("host", "symb", "plank"))
d13C.dat<-d13C.dat[ , !(names(d13C.dat) %in% c("Norleucine", "Aminoadipic.Acid", "Methionine"))] #remove Norleucine, Methionine, Aminoadipic Acid

PCA by treatment

Run a PCA looking at effects of treatment.

######## ######## ######## ######## 
######## ######## ######## ######## by treatment
# PCA dataframe
PCA.df<-d13C.dat[, c(7:8,11:23)]

PC<- prcomp(PCA.df[,c(-1:-2)], center = TRUE, scale= TRUE) 
PC.summary<-summary(PC)
ev<-PC$sdev^2 
newdat<-PC$x[,1:4] # 2 PCAs explain 76% of variance
#plot(PC, type="lines", main="PC.area eigenvalues")

## PC1 and PC2
PC.fig1 <- ggbiplot(PC, choices = 1:2, obs.scale = 1, var.scale = 1, 
                             groups= PCA.df[,1], ellipse = TRUE,
                             circle = FALSE) +
  scale_color_discrete(name = '') +
  theme_bw() +
  scale_x_continuous(breaks=pretty_breaks(n=5))+
  coord_cartesian(xlim = c(-8, 8), ylim=c(-4, 4))+ 
  theme(axis.ticks.length=unit(-0.25, "cm"), axis.text.y=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm")), axis.text.x=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"))) +
  theme(legend.text=element_text(size=15)) +
  theme(panel.background = element_rect(colour = "black", size=1))+
  theme(legend.key = element_blank())+
  theme(legend.direction = 'horizontal', legend.position = 'top') +theme(aspect.ratio=0.7)
print(PC.fig1)

ggsave("figures/carbon/PCA_d13C.trt.pdf", height=5, width=8, encod="MacRoman")

PCA by fraction

Run a new PCA looking at the effects of fraction (plankton, host, symbiont)

######## ######## ######## ######## 
######## ######## ######## ######## by fraction

PC.fig2 <- ggbiplot(PC, choices = 1:2, obs.scale = 1, var.scale = 1, 
                   groups= PCA.df[,2], ellipse = TRUE,
                   circle = FALSE) +
  scale_color_discrete(name = '') +
  theme_bw() +
  coord_cartesian(xlim = c(-8, 8), ylim=c(-4, 4)) +
  theme(axis.ticks.length=unit(-0.25, "cm"), axis.text.y=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm")), axis.text.x=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"))) +
  theme(legend.text=element_text(size=15)) +
  theme(panel.background = element_rect(colour = "black", size=1))+
  theme(legend.key = element_blank())+
  theme(legend.direction = 'horizontal', legend.position = 'top') +theme(aspect.ratio=0.7)
print(PC.fig2)

ggsave("figures/carbon/PCA_d13C.frac.pdf", height=5, width=8, encod="MacRoman")

Models

Run models looking for effects of Fraction or the Treatment-Interaction (feeding/light).

d13C.dat2<-d13C.dat[!(d13C.dat$Fraction=="plank"),] #remove plankton for now

for(i in c(11:23)){
  Y=d13C.dat2[,i]
  mod<-aov(Y~Fraction+Treat.Int, data=d13C.dat2)
  print(anova(mod))
  plot(allEffects(mod), ylab=colnames(d13C.dat2)[i], cex.axis=0.5)
}
## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value  Pr(>F)  
## Fraction   1  7.9280  7.9280  4.8489 0.05881 .
## Treat.Int  2  2.3861  1.1931  0.7297 0.51157  
## Residuals  8 13.0802  1.6350                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value   Pr(>F)   
## Fraction   1 43.514  43.514  16.281 0.003762 **
## Treat.Int  2 38.910  19.455   7.279 0.015818 * 
## Residuals  8 21.382   2.673                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  2.197  2.1971  0.4464 0.5228
## Treat.Int  2  5.526  2.7628  0.5614 0.5914
## Residuals  8 39.372  4.9215

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.5098  0.5098  0.1910 0.6736
## Treat.Int  2 13.3334  6.6667  2.4977 0.1436
## Residuals  8 21.3529  2.6691

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  3.0549  3.0549  1.2730 0.2919
## Treat.Int  2  4.4772  2.2386  0.9328 0.4324
## Residuals  8 19.1986  2.3998

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1 0.1806 0.18060  0.1457 0.7126
## Treat.Int  2 1.8191 0.90953  0.7340 0.5097
## Residuals  8 9.9129 1.23912

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  2.301  2.3006  0.5090 0.4958
## Treat.Int  2  0.536  0.2681  0.0593 0.9428
## Residuals  8 36.157  4.5196

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value  Pr(>F)  
## Fraction   1 10.0959 10.0959  5.0226 0.05533 .
## Treat.Int  2  1.9626  0.9813  0.4882 0.63089  
## Residuals  8 16.0806  2.0101                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  1.9366 1.93656  0.8704 0.3781
## Treat.Int  2  1.1095 0.55476  0.2494 0.7851
## Residuals  8 17.7984 2.22480

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value   Pr(>F)   
## Fraction   1 15.4184 15.4184 15.5000 0.004314 **
## Treat.Int  2  7.1774  3.5887  3.6077 0.076423 . 
## Residuals  8  7.9579  0.9947                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.4717 0.47171  0.3402 0.5758
## Treat.Int  2  1.7167 0.85836  0.6190 0.5624
## Residuals  8 11.0933 1.38666

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.4274 0.42736  0.2195 0.6519
## Treat.Int  2  3.7940 1.89702  0.9743 0.4181
## Residuals  8 15.5772 1.94716

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.7150 0.71500  0.4577 0.5178
## Treat.Int  2  0.0828 0.04142  0.0265 0.9739
## Residuals  8 12.4980 1.56225

# Almost Fraction effect for Alanine, Proline
# Fraction effect for: Glycine, Glutamic acid
# Treatment effect for: Glycine
# Almost Treatment effect: Glutamic Acid

-New dataframe (long format) here to make figures. Same data as above.

###########
###########
# CSAA.dat long

d13C.dat.long<-read.csv("data/d13C.CSIA.long.csv")
#str(d13C.dat.long)

d13C.dat.long<-d13C.dat.long[!(d13C.dat.long$Amino.acid=="Methionine"),]
d13C.dat.long<-d13C.dat.long[!(d13C.dat.long$Amino.acid=="Norleucine"),]
d13C.dat.long<-d13C.dat.long[!(d13C.dat.long$Amino.acid=="Aminoadipic Acid"),] # remove unwanted data

d13C.dat.long$AA.short<-mapvalues(d13C.dat.long$Amino.acid, from =c("Alanine", "Aspartic acid", "Glutamic acid", "Glycine", "Isoleucine", "Leucine", "Lysine", "Phenylalanine", "Proline", "Serine", "Threonine", "Tyrosine", "Valine"), to = c("Ala", "Asp", "Glu", "Gly", "Ile", "Leu", "Lys", "Phe", "Pro", "Ser", "Thr", "Tyr", "Val"))

d13C.dat.long$AA.short<-factor(d13C.dat.long$AA.short, levels=c("Ala","Asp", "Glu", "Ile", "Leu", "Pro", "Val", "Gly", "Lys", "Ser", "Phe", "Thr", "Tyr"))

# looking at average trophic and sourceAA
# trophic example = glutamate, source = phenylalanine
# Source AA  not enriched with trophic transfers
# Trophic AA change with trophic transfers... these are the ones below

d13C.dat.long$AA.cat<-ifelse(d13C.dat.long$AA.short=="Asp" | d13C.dat.long$AA.short=="Glu" | 
                               d13C.dat.long$AA.short=="Ala" | d13C.dat.long$AA.short=="Ile" | 
                               d13C.dat.long$AA.short=="Leu" | d13C.dat.long$AA.short=="Val" | 
                               d13C.dat.long$AA.short=="Pro", "Troph", "Source")

mod<-lm(d13C.value~AA.short+Treat.Int*Fraction, data=d13C.dat.long)
plot(allEffects(mod))

dfC<-d13C.dat.long
dfC<-dfC[!(dfC$AA.short == "Thr"), ] # removing Thr because not source or trophic

Figures

  • all AA pooled across fractions, showing d13C.CSIA_Fraction
######## Figures
df.mean<-aggregate(d13C.value~AA.short+Fraction, data=dfC, mean, na.rm=TRUE)
df.n<-aggregate(d13C.value~AA.short+Fraction, data=dfC, length)
df.SD<-aggregate(d13C.value~AA.short+Fraction, data=dfC, sd, na.rm=TRUE)
colnames(df.SD)[3]="SD"
df.mean<-cbind(df.mean, df.SD[3])
df.mean$Fraction<-factor(df.mean$Fraction, levels=c("host", "symb", "plank"))


Fig.formatting<-(theme_classic()) +
  theme(text=element_text(size=10),
        axis.line=element_blank(),
        legend.text.align = 0,
        legend.text=element_text(size=10),
        #legend.title = element_blank(),
        panel.border = element_rect(fill=NA, colour = "black", size=1),
        aspect.ratio=1, 
        axis.ticks.length=unit(0.25, "cm"),
        axis.text.y=element_text(
          margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"), colour="black", size=10), 
        axis.text.x=element_text(
          margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"), colour="black", size=8)) +
  theme(legend.key.size = unit(0.4, "cm")) +
  theme(aspect.ratio=1) +
  theme(panel.spacing=unit(c(0, 0, 0, 0), "cm"))

######
# all AA pooled by fraction
pd <- position_dodge(0.5) #offset for error bars
ggplot(df.mean, aes(x=AA.short, y=d13C.value)) +
  geom_errorbar(aes(ymin=d13C.value-SD, ymax=d13C.value+SD, color=Fraction), 
                size=.5, width=0, position=pd) +
  geom_point(size=3, pch=19,  position=pd, aes(color=Fraction)) +
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4.0, y=0, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10.0, y=0, color="gray40") +
  ggtitle("d13C by fraction, treatments pooled") +
         coord_cartesian(ylim=c(-35, 0)) + 
  xlab("Amino Acids") + 
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, V-PDB)")))) +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
         Fig.formatting

ggsave("figures/carbon/d13C.CSIA_Fraction.pdf", height=5, width=8, encod="MacRoman")
  • d13C by fraction and treatments, showing d13C.CSIA_frac.trt
#################
#################
# d13C by fraction and treatments

df.mean<-aggregate(d13C.value~AA.short+Fraction+Treat.Int, data=dfC, mean, na.rm=TRUE)
df.n<-aggregate(d13C.value~AA.short+Fraction+Treat.Int, data=dfC, length)
df.SD<-aggregate(d13C.value~AA.short+Fraction+Treat.Int, data=dfC, sd, na.rm=TRUE)
colnames(df.SD)[4]="SD"
df.mean<-cbind(df.mean, df.SD[4])
df.mean$Fraction<-factor(df.mean$Fraction, levels=c("host", "symb", "plank"))


pd <- position_dodge(0.0) #offset for error bars
ggplot(df.mean, aes(x=AA.short, y=d13C.value)) +
  geom_point(size=3, position=pd, aes(shape=Treat.Int, color=Fraction, group=Treat.Int)) +
  ggtitle("d13C by fraction and treatments") +
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4, y=0, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10, y=0, color="gray40") +
  coord_cartesian(ylim=c(-35, 0)) + 
  xlab("Amino Acids") +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, V-PDB)")))) +
  Fig.formatting

ggsave("figures/carbon/d13C.CSIA_frac.trt.pdf", height=5, width=8, encod="MacRoman")
  • all d13C amino acids: showing d13C.CSIA_Trt.alone
##################
# all d13C amino acids

df.mean2<-aggregate(d13C.value~AA.short+Treat.Int, data=dfC, mean, na.rm=TRUE)
df.SD2<-aggregate(d13C.value~AA.short+Treat.Int, data=dfC, na.rm=TRUE, sd)
df.SD2[is.na(df.SD2)] <- 0
colnames(df.SD2)[3]="SD"
df.mean2<-cbind(df.mean2, df.SD2[3])

pd <- position_dodge(0.5) #offset for error bars
ggplot(df.mean2, aes(x=AA.short, y=d13C.value, group=Treat.Int)) +
  geom_errorbar(aes(ymin=d13C.value-SD, ymax=d13C.value+SD, color=Treat.Int), size=.5, width=0, position=pd) +
  geom_point(aes(color=Treat.Int), size=3, position=pd) +
  ggtitle("d13C by treatments") +
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4, y=0, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10, y=0, color="gray40") +
  coord_cartesian(ylim=c(-35, 0)) + 
  xlab("Amino Acids") +
  scale_color_manual(values=c("gray40", "darkgoldenrod1", "coral", "skyblue2")) +
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, V-PDB)")))) +
  Fig.formatting

ggsave("figures/carbon/d13C.CSIA_Trt.alone.pdf", height=5, width=8, encod="MacRoman")

Trophic and source AA

##################
# all trophic and source AA
AA.means<-aggregate(d13C.value~AA.cat+Treat.Int+Fraction, data=dfC, mean, na.rm=TRUE); AA.means
AA.sd<-aggregate(d13C.value~AA.cat+Treat.Int+Fraction, data=dfC, sd, na.rm=TRUE)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))


pd <- position_dodge(0.5) #offset for error bars
ggplot(AA.means, aes(x=Treat.Int, y=d13C.value, group=AA.cat, color=Fraction)) +
  geom_errorbar(aes(ymin=d13C.value-SD, ymax=d13C.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction, shape=AA.cat), size=3, position=pd) +
  ggtitle("d13C by fraction and Troph/Source") +
  coord_cartesian(ylim=c(-30, -5)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed", "Plankton")) +
  scale_color_manual(values=c("coral", "skyblue3", "springgreen3")) +
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, V-PDB)")))) +
  Fig.formatting

ggsave("figures/carbon/d13C.CSIA_EAA.pdf", height=5, width=8, encod="MacRoman")
  • source AA glycine, serine, and threonine removed, showing 13C.CSIA.no.glyserthr
##################
# source AA glycine and serine removed also threonine
dfC.trim<-d13C.dat.long[!(d13C.dat.long$AA.short=="Ser" | 
                            d13C.dat.long$AA.short=="Gly" | 
                            d13C.dat.long$AA.short=="Thr"),]

AA.means<-aggregate(d13C.value~AA.cat+Treat.Int+Fraction, data=dfC.trim, mean, na.rm=TRUE)
AA.sd<-aggregate(d13C.value~AA.cat+Treat.Int+Fraction, data=dfC.trim, na.rm=TRUE, sd)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))

pd <- position_dodge(0.5) #offset for error bars
ggplot(AA.means, aes(x=Treat.Int, y=d13C.value, group=AA.cat, color=Fraction)) +
  geom_errorbar(aes(ymin=d13C.value-SD, ymax=d13C.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction, shape=AA.cat), size=3, position=pd) +
  coord_cartesian(ylim=c(-30, -5)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed", "Plankton")) +
  ggtitle("d13C no ser/gly/thr") +
  scale_color_manual(values=c("coral", "skyblue3", "springgreen3")) +
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, V-PDB)")))) +
  Fig.formatting

ggsave("figures/carbon/d13C.CSIA.no.glyserthr.pdf", height=5, width=8, encod="MacRoman")
  • threonine in host and symbiont (microbial source), showing d13C.CSIA_EAA.thr
##################
# threonine in host and symbiont (microbial source)
dfC.thr<-d13C.dat.long[(d13C.dat.long$AA.short=="Thr"),]

AA.means<-aggregate(d13C.value~AA.short+Treat.Int+Fraction, data=dfC.thr, mean, na.rm=TRUE); AA.means
##   AA.short Treat.Int Fraction d13C.value
## 1      Thr       D-F     host  -9.828662
## 2      Thr       L-F     host -12.037879
## 3      Thr      L-NF     host  -9.718434
## 4      Thr     Plank    plank -17.895960
## 5      Thr       D-F     symb -10.332904
## 6      Thr       L-F     symb  -9.844444
## 7      Thr      L-NF     symb  -8.840278
AA.sd<-aggregate(d13C.value~AA.short+Treat.Int+Fraction, data=dfC.trim, na.rm=TRUE, sd)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))

ggplot(AA.means, aes(x=Treat.Int, y=d13C.value, color=Fraction)) +
  geom_errorbar(aes(ymin=d13C.value-SD, ymax=d13C.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction), size=3, position=pd) +
  coord_cartesian(ylim=c(0, -30)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed", "Plankton")) +
  ggtitle("d13C threonine") +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
  ylab(ylab(expression(paste(delta^{13}, C[AA], " (\u2030, v-PDB)")))) +
  Fig.formatting

ggsave("figures/carbon/d13C.CSIA_EAA.thr.pdf", height=5, width=8, encod="MacRoman")

Nitrogen

######## ######## 
## Nitrogen 
######## ######## 
d15N.dat<-read.csv("data/d15N.CSIA.wide.csv") # wide form carbon data
d15N.dat<-d15N.dat[ , !(names(d15N.dat) %in% c("Norleucine", "Aminoadipic.Acid", "Methionine"))]
d15N.dat$Fraction<-factor(d15N.dat$Fraction, levels=c("host", "symb", "plank"))

PCA by treatment

# PCA dataframe
PCA.df<-d15N.dat[, c(7:8,11:23)]
PC<- prcomp(PCA.df[, c(-1:-2)], center = TRUE, scale= TRUE) 
PC.summary<-summary(PC)
ev<-PC$sdev^2 
newdat<-PC$x[,1:4] # 2 PCAs explain 74% of variance
#plot(PC, type="lines", main="PC.area eigenvalues")

######################## treatments
## PC1 and PC2
PC.fig3 <- ggbiplot(PC, choices = 1:2, obs.scale = 1, var.scale = 1, 
                   groups= PCA.df[,1], ellipse = TRUE,
                   circle = FALSE) +
  scale_color_discrete(name = '') +
  theme_bw() +
  coord_cartesian(xlim = c(-8, 5), ylim=c(-6, 6)) +
  theme(axis.ticks.length=unit(-0.25, "cm"), axis.text.y=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm")), axis.text.x=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"))) +
  theme(legend.text=element_text(size=15)) +
  theme(panel.background = element_rect(colour = "black", size=1))+
  theme(legend.key = element_blank())+
  theme(legend.direction = 'horizontal', legend.position = 'top') +theme(aspect.ratio=0.7)
print(PC.fig3)

ggsave("figures/nitrogen/PCA_d15N.trt.pdf", height=5, width=8, encod="MacRoman")

PCA by fraction

######################### fractions
## PC1 and PC2
PC.fig4 <- ggbiplot(PC, choices = 1:2, obs.scale = 1, var.scale = 1, 
                   groups= PCA.df[,2], ellipse = TRUE,
                   circle = FALSE) +
  scale_color_discrete(name = '') +
  theme_bw() +
  coord_cartesian(xlim = c(-8, 5), ylim=c(-6, 6)) + 
  theme(axis.ticks.length=unit(-0.25, "cm"), axis.text.y=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm")), axis.text.x=element_text(margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"))) +
  theme(legend.text=element_text(size=15)) +
  theme(panel.background = element_rect(colour = "black", size=1))+
  theme(legend.key = element_blank())+
  theme(legend.direction = 'horizontal', legend.position = 'top') +theme(aspect.ratio=0.7)
print(PC.fig4)

ggsave("figures/nitrogen/PCA_d15N.frac.pdf", height=5, width=8, encod="MacRoman")
  • arrange the 4 plots:
#### compile the 4 PCA ###
library("cowplot")
plot_grid(PC.fig1, PC.fig3, PC.fig2, PC.fig4, ncol = 2)

ggsave("figures/PCAs.pdf", height=8, width=11, encod="MacRoman")

######

models

Overall we see:
- Fraction effect for: Leucine, Proline, Aspartic Acid, Glutamic Acid, Tyrosine.
- Treatment effect for: Leucine

d15N.dat2<-d15N.dat[!(d15N.dat$Fraction=="plank"),] #remove plankton for now

for(i in c(11:23)){
  Y=d15N.dat2[,i]
  mod<-aov(Y~Fraction+Treat.Int, data=d15N.dat2)
  print(anova(mod), cex=0.5)
  plot(allEffects(mod), ylab=colnames(d15N.dat2)[i])
}
## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  8.1676  8.1676  3.3922 0.1028
## Treat.Int  2  1.8579  0.9290  0.3858 0.6919
## Residuals  8 19.2618  2.4077

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  4.2262  4.2262  1.6503 0.2349
## Treat.Int  2  1.5693  0.7846  0.3064 0.7444
## Residuals  8 20.4868  2.5609

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1 13.327 13.3269  2.6576 0.1417
## Treat.Int  2  3.612  1.8061  0.3602 0.7083
## Residuals  8 40.117  5.0147

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.0006 0.00062  0.0003 0.9860
## Treat.Int  2  1.6612 0.83058  0.4397 0.6589
## Residuals  8 15.1127 1.88908

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1 0.2248 0.22482  0.2201 0.6515
## Treat.Int  2 0.0415 0.02076  0.0203 0.9799
## Residuals  8 8.1699 1.02123

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value   Pr(>F)   
## Fraction   1 9.9952  9.9952 19.9043 0.002107 **
## Treat.Int  2 3.8088  1.9044  3.7924 0.069430 . 
## Residuals  8 4.0173  0.5022                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.3383  0.3383  0.0908 0.7708
## Treat.Int  2  3.8576  1.9288  0.5178 0.6145
## Residuals  8 29.8002  3.7250

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value    Pr(>F)    
## Fraction   1 22.9354 22.9354 28.9356 0.0006623 ***
## Treat.Int  2  4.1174  2.0587  2.5973 0.1351371    
## Residuals  8  6.3411  0.7926                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## Fraction   1 3.3328  3.3328  6.3165 0.03619 *
## Treat.Int  2 1.4198  0.7099  1.3455 0.31354  
## Residuals  8 4.2210  0.5276                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value Pr(>F)
## Fraction   1 1.1145 1.11452  2.3608 0.1630
## Treat.Int  2 0.9348 0.46741  0.9901 0.4129
## Residuals  8 3.7768 0.47210

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  1.4002 1.40019  0.5355 0.4852
## Treat.Int  2  0.8007 0.40036  0.1531 0.8605
## Residuals  8 20.9164 2.61455

## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## Fraction   1 16.163  16.163  8.9499 0.01729 *
## Treat.Int  2  0.128   0.064  0.0354 0.96532  
## Residuals  8 14.448   1.806                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Fraction   1  0.1051 0.10513  0.0799 0.7846
## Treat.Int  2  0.2452 0.12259  0.0931 0.9120
## Residuals  8 10.5298 1.31623

# Fraction effect for: Leucine, Proline, Aspartic Acid, Glutamic Acid, Tyrosine
# Treatment effect for: Leucine
Trophic position

Trophic position using trophic AA gultamic acid (Glu) and source amino acid phenylalanine (Phe), following Chikarishi et al. 2009

  • Trophic Position, showing TP.glu.phe
###
# scatter of glutamic.acid vs. phenylalanine
 
       
### ### ### 
### ### ### trophic position using trophic (Glu) and source (Phe) AA, Chikarishi et al. 2009

d15N.dat # dataframe here
##       Species Genotype Tag  Tank Light.Trt Feed.Trt Treat.Int Fraction
## 1    plankton    plank  NA plank     plank    plank     plank    plank
## 2  M capitata        A  89 tank5     Light   NoFeed      L-NF     host
## 3  M capitata        A  89 tank5     Light   NoFeed      L-NF     symb
## 4  M capitata        B  90 tank5     Light   NoFeed      L-NF     host
## 5  M capitata        B  90 tank5     Light   NoFeed      L-NF     symb
## 6  M capitata        A  91 tank6     Light      Fed       L-F     host
## 7  M capitata        A  91 tank6     Light      Fed       L-F     symb
## 8  M capitata        B  92 tank6     Light      Fed       L-F     host
## 9  M capitata        B  92 tank6     Light      Fed       L-F     symb
## 10 M capitata        A  93 tank8      Dark      Fed       D-F     host
## 11 M capitata        A  93 tank8      Dark      Fed       D-F     symb
## 12 M capitata        B  94 tank8      Dark      Fed       D-F     host
## 13 M capitata        B  94 tank8      Dark      Fed       D-F     symb
##    Sample.ID Analysis.ID   Alanine   Glycine   Threonine   Serine   Valine
## 1      PLANK        B1V5 12.527909 5.6008427 -1.98126227 6.050563 9.787651
## 2   T5A-HOST   B1V7.redo  7.847327 2.9142793 -2.84154593 2.471675 4.713940
## 3   T5A-SYMB        B1V4  4.161511 2.4165936 -0.88769904 2.673792 5.625749
## 4   T5B-HOST        B1V1  8.445000 4.9093333  2.41500000 6.512000 7.545000
## 5   T5B-SYMB        B1V6  3.413051 4.4181020  3.14079699 5.217705 6.315661
## 6   T6A-HOST        B2V6  6.664737 2.5136251 -2.07588316 3.121292 6.944947
## 7   T6A-SYMB        B1V2  4.758715 4.0494840  0.06969189 2.942487 5.572360
## 8   T6B-HOST        B2V1  5.672675 2.1437369 -1.03612090 3.501343 5.474639
## 9   T6B-SYMB        B2V4  6.373143 6.1538639  4.21524652 4.945442 6.749994
## 10  T8A-HOST        B1V3  5.758753 0.7749311 -2.22203089 3.351731 6.410436
## 11  T8A-SYMB        B2V3  5.360115 2.0968911 -1.54835714 2.579622 4.776017
## 12  T8B-HOST        B2V2  7.724146 3.7909118 -0.62332275 3.423008 6.353737
## 13  T8B-SYMB   B2V5.redo  8.146049 5.0333102  1.27248727 3.935703 6.760420
##     Leucine Isoleucine   Proline Aspartic.acid Glutamic.acid Phenylalanine
## 1  6.715856   7.246781 11.988448      8.936740     11.552222     0.5698750
## 2  3.738042   5.378339  7.172414      6.307249      5.953692     1.2066225
## 3  3.470356   7.967821  5.148293      5.360155      5.426751     2.3384388
## 4  5.638000   6.414333  8.628333      8.073333      7.287667    -0.0760000
## 5  2.821053   7.518209  2.949745      5.197029      5.927785     3.6630468
## 6  4.422418   6.219415  5.728406      5.733161      6.024922     2.3619627
## 7  1.757357   6.828875  4.039185      4.905036      5.337607    -1.3231998
## 8  3.341359   4.355346  5.909505      5.718192      5.829240     0.6865165
## 9  2.366618   4.339027  2.784974      5.379592      5.609523     3.6194835
## 10 5.830963   9.929012  6.644103      6.168844      6.529514     2.1608311
## 11 2.689574   4.910402  4.348096      4.914364      5.030590     1.2952007
## 12 4.913521   5.277349  6.779098      6.622148      6.644920     1.7441324
## 13 3.827548   3.994467  5.001674      6.542721      7.280612     2.5901570
##     Tyrosine   Lysine
## 1  4.6172731 3.838999
## 2  2.9448377 2.827533
## 3  3.2175743 2.002628
## 4  1.8043333 3.494667
## 5  5.6859317 3.202733
## 6  1.9984845 3.030835
## 7  2.1849553 1.719356
## 8  2.6914821 3.466719
## 9  5.9918839 3.349517
## 10 0.5778758 1.860629
## 11 4.5429056 1.957223
## 12 2.6329649 3.807909
## 13 4.9536936 5.133633
# glu = trophic AA (changing with food,  show enrichment realtive to source
# phe = source AA (showlittle change with increasing trophic position, reflect d15N baseline)
# beta = 3.4 (difference in d15N values among trophic and source AAs in primary producers, @ TP=1)
# TDFAA = trophic discrimination factor: mean 15N enrichment of >=1 trophic vs. source AA per trophic level
 
d15N.dat<-d15N.dat %>% mutate(TP = ((Glutamic.acid - Phenylalanine - 3.4)/7.6) +1)

df.mean<-aggregate(TP~Treat.Int+Fraction, data=d15N.dat, mean, na.rm=TRUE)
df.SD<-aggregate(TP~Treat.Int+Fraction, data=d15N.dat, sd, na.rm=TRUE)
colnames(df.SD)[3]="SD"
df.mean<-cbind(df.mean, df.SD[3])
df.mean$Fraction<-factor(df.mean$Fraction, levels=c("host", "symb", "plank"))

ggplot(df.mean, aes(x=Treat.Int, y=TP)) +
  geom_errorbar(aes(ymin=TP-SD, ymax=TP+SD, color=Fraction), 
                size=.5, width=0, position=pd) +
  geom_point(size=3, pch=19,  position=pd, aes(color=Fraction)) +
  ggtitle("Chikarishi trophic position") +
  coord_cartesian(ylim=c(2.5, 0.5)) +
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed", "Plankton")) +
  ylab(ylab(expression(paste(delta^{15}, N[Glu-Phe], " (\u2030, AIR)")))) +
  scale_color_manual(values=c("coral", "skyblue3", "springgreen3")) +
  Fig.formatting

ggsave("figures/nitrogen/TP.glu.phe.pdf", height=5, width=8, encod="MacRoman")
###########
###########
# d15N.CSIA.dat long
d15N.dat.long<-read.csv("data/d15N.CSIA.long.csv")

#str(d15N.dat.long)

d15N.dat.long<-d15N.dat.long[!(d15N.dat.long$Amino.acid=="Methionine"),]
d15N.dat.long<-d15N.dat.long[!(d15N.dat.long$Amino.acid=="Norleucine"),]
d15N.dat.long<-d15N.dat.long[!(d15N.dat.long$Amino.acid=="Aminoadipic Acid"),] # remove unwanted data

d15N.dat.long$AA.short<-mapvalues(d15N.dat.long$Amino.acid, from =c("Alanine", "Aspartic acid", "Glutamic acid", "Glycine", "Isoleucine", "Leucine", "Lysine", "Phenylalanine", "Proline", "Serine", "Threonine", "Tyrosine", "Valine"), to = c("Ala", "Asp", "Glu", "Gly", "Ile", "Leu", "Lys", "Phe", "Pro", "Ser", "Thr", "Tyr", "Val"))

d15N.dat.long$AA.short<-factor(d15N.dat.long$AA.short, levels=c("Ala","Asp", "Glu", "Ile", "Leu", "Pro", "Val", "Gly", "Lys", "Ser", "Phe", "Thr", "Tyr"))

# looking at average Trophic and Source
d15N.dat.long$AA.cat<-ifelse(d15N.dat.long$AA.short=="Asp" | d15N.dat.long$AA.short=="Glu" | 
                               d15N.dat.long$AA.short=="Ala" | d15N.dat.long$AA.short=="Ile" | 
                               d15N.dat.long$AA.short=="Leu" | d15N.dat.long$AA.short=="Val" | 
                               d15N.dat.long$AA.short=="Pro", "Troph", "Source")

dfN<-d15N.dat.long
mod<-lm(d15N.value~AA.short+Treat.Int*Fraction, data=d15N.dat.long)
plot(allEffects(mod))

dfN<-d15N.dat.long[!(d15N.dat.long$AA.short=="Thr"), ] # not good source, remove here
  • all AA pooled by fraction, showing d15N.CSIA_Fraction
######## Figures
pd <- position_dodge(0.5) #offset for error bars

df.mean<-aggregate(d15N.value~AA.short+Fraction, data=dfN, mean, na.rm=TRUE)
df.n<-aggregate(d15N.value~AA.short+Fraction, data=dfN, length)
df.SD<-aggregate(d15N.value~AA.short+Fraction, data=dfN, sd, na.rm=TRUE)
df.SD[is.na(df.SD)] <- 0
colnames(df.SD)[3]="SD"
df.mean<-cbind(df.mean, df.SD[3])
df.mean$Fraction<-factor(df.mean$Fraction, levels=c("host", "symb", "plank"))

Fig.formatting<-(theme_classic()) +
  theme(text=element_text(size=10),
        axis.line=element_blank(),
        legend.text.align = 0,
        legend.text=element_text(size=10),
        #legend.title = element_blank(),
        panel.border = element_rect(fill=NA, colour = "black", size=1),
        aspect.ratio=1, 
        axis.ticks.length=unit(0.25, "cm"),
        axis.text.y=element_text(
          margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"), colour="black", size=10), 
        axis.text.x=element_text(
          margin=unit(c(0.5, 0.5, 0.5, 0.5), "cm"), colour="black", size=8)) +
  theme(legend.key.size = unit(0.4, "cm")) +
  theme(aspect.ratio=1) +
  theme(panel.spacing=unit(c(0, 0, 0, 0), "cm"))

######
# all AA pooled by fraction
ggplot(df.mean, aes(x=AA.short, y=d15N.value)) +
  geom_errorbar(aes(ymin=d15N.value-SD, ymax=d15N.value+SD, color=Fraction), 
                size=.5, width=0, position=pd) +
  geom_point(size=3, pch=19,  position=pd, aes(color=Fraction)) +
  ggtitle("d15N by fraction, treatments pooled") +
  coord_cartesian(ylim=c(15, -5)) +
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4, y=15, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10, y=15, color="gray40") +
  xlab("Amino Acids") + 
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_Fraction.pdf", height=5, width=8, encod="MacRoman")
  • Fraction and treatment, showing d15N.CSIA_frac.trt
#################
df.mean<-aggregate(d15N.value~AA.short+Fraction+Treat.Int, data=dfN, mean, na.rm=TRUE)
df.n<-aggregate(d15N.value~AA.short+Fraction+Treat.Int, data=dfN, length)
df.SD<-aggregate(d15N.value~AA.short+Fraction+Treat.Int, data=dfN, sd, na.rm=TRUE)
colnames(df.SD)[4]="SD"
df.mean<-cbind(df.mean, df.SD[4])
df.mean$Fraction<-factor(df.mean$Fraction, levels=c("host", "symb", "plank"))

ggplot(df.mean, aes(x=AA.short, y=d15N.value)) +
  geom_point(size=3, aes(shape=Treat.Int, color=Fraction, group=Treat.Int)) +
  ggtitle("d15N by fraction and treatments") +
  coord_cartesian(ylim=c(15, -5)) + 
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4, y=15, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10, y=15, color="gray40") +
  xlab("Amino Acids") +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_frac.trt.pdf", height=5, width=8, encod="MacRoman")
  • all amino acids, showing d15N.CSIA_Trt.alone.pdf
##################
# all d15N amino acids

df.mean2<-aggregate(d15N.value~AA.short+Treat.Int, data=dfN, mean, na.rm=TRUE)
df.SD2<-aggregate(d15N.value~AA.short+Treat.Int, data=dfN, na.rm=TRUE, sd)
df.SD2[is.na(df.SD2)] <- 0
colnames(df.SD2)[3]="SD"
df.mean2<-cbind(df.mean2, df.SD2[3])

ggplot(df.mean2, aes(x=AA.short, y=d15N.value, group=Treat.Int)) +
  geom_errorbar(aes(ymin=d15N.value-SD, ymax=d15N.value+SD, color=Treat.Int), size=.5, width=0, position=pd) +
  geom_point(aes(color=Treat.Int), size=3, position=pd) +
  ggtitle("d15N by treatments") +
  coord_cartesian(ylim=c(15, -5)) + 
  geom_vline(xintercept=7.5, linetype="solid", color = "gray") +
  annotate(geom="text", label="Trophic-AA", x=4, y=15, color="gray40") +
  annotate(geom="text", label="Source-AA", x=10, y=15, color="gray40") +
  xlab("Amino Acids") +
  scale_color_manual(values=c("gray40", "darkgoldenrod1", "coral", "skyblue2")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_Trt.alone.pdf", height=5, width=8, encod="MacRoman")
  • all source and trophic AA, showing d15N.CSIA_EAA
##################
# all source and trophic) AA
AA.means<-aggregate(d15N.value~AA.cat+Treat.Int+Fraction, data=dfN, mean, na.rm=TRUE); AA.means
AA.sd<-aggregate(d15N.value~AA.cat+Treat.Int+Fraction, data=dfN, sd, na.rm=TRUE)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))

ggplot(AA.means, aes(x=Treat.Int, y=d15N.value, group=AA.cat, color=Fraction)) +
  geom_errorbar(aes(ymin=d15N.value-SD, ymax=d15N.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction, shape=AA.cat), size=3, position=pd) +
  ggtitle("d15N by fraction and Troph/EAA") +
  coord_cartesian(ylim=c(12, 0)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  scale_color_manual(values=c("coral", "springgreen3",  "skyblue3")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_EAA.pdf", height=5, width=8, encod="MacRoman")
  • source and trophic AA w/o glycine, serine and threonine, showing d15N.CSIA_EAA.no.glyserthr
##################
# source and trophic AA w/o glycine  serine and threonine
dfN.trim<-d15N.dat.long[!(d15N.dat.long$AA.short=="Ser" | 
                            d15N.dat.long$AA.short=="Gly" | d15N.dat.long$AA.short=="Thr"), ]

AA.means<-aggregate(d15N.value~AA.cat+Treat.Int+Fraction, data=dfN.trim, mean, na.rm=TRUE)
AA.sd<-aggregate(d15N.value~AA.cat+Treat.Int+Fraction, data=dfN.trim, na.rm=TRUE, sd)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))


ggplot(AA.means, aes(x=Treat.Int, y=d15N.value, group=AA.cat, color=Fraction)) +
  geom_errorbar(aes(ymin=d15N.value-SD, ymax=d15N.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction, shape=AA.cat), size=3, position=pd) +
  coord_cartesian(ylim=c(14, 0)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  ggtitle("d15N no ser/gly/thr") +
  scale_color_manual(values=c("coral", "springgreen3",  "skyblue3")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_EAA.no.glyserthr.pdf", height=5, width=8, encod="MacRoman")
  • threonine in host and symbiont (microbial source), showing d15N.CSIA_EAA.thr
##################
# threonine in host and symbiont (microbial source)
dfN.thr<-d15N.dat.long[(d15N.dat.long$AA.short=="Thr"),]
AA.means<-aggregate(d15N.value~AA.cat+AA.short+Treat.Int+Fraction, data=dfN.thr, mean, na.rm=TRUE); AA.means
AA.sd<-aggregate(d15N.value~AA.cat+Treat.Int+Fraction, data=dfN.trim, na.rm=TRUE, sd)
colnames(AA.sd)[4]="SD"
AA.means<-cbind(AA.means, AA.sd[4])
AA.means$Fraction<-factor(AA.means$Fraction, levels=c("host", "symb", "plank"))

ggplot(AA.means, aes(x=Treat.Int, y=d15N.value, color=Fraction)) +
  geom_errorbar(aes(ymin=d15N.value-SD, ymax=d15N.value+SD), size=.5, width=0, position=pd) +
  geom_point(aes(color=Fraction), size=3, position=pd) +
  coord_cartesian(ylim=c(6, -6)) + 
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  ggtitle("d15N threonine") +
  scale_color_manual(values=c("coral", "springgreen3", "skyblue3")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.CSIA_EAA.thr.pdf", height=5, width=8, encod="MacRoman")
Weighted means

These are the weighted means for trophic and source AA following Bradley et al. 2015.

  • weighted means, showing wt.mean.d15N.CSIA
###########################
##################
#########

df.mean<-aggregate(d15N.value~AA.short+AA.cat+Fraction+Treat.Int, data=dfN, mean, na.rm=TRUE)
df.SD<-aggregate(d15N.value~AA.short+AA.cat+Fraction+Treat.Int, data=dfN, sd, na.rm=TRUE)
colnames(df.SD)[5]="SD"
df.mean<-cbind(df.mean, df.SD[5])
df.mean$mean.sd<-(df.mean$d15N.value/df.mean$SD)
df.mean$inv.sd<-(1/df.mean$SD)
# write.csv(df.mean, "wtmeans.csv") # use this to calculate weighted mean
# weighted mean is sum(mean.sd/inv.sd) for trophic AA, same for source AA
# delta.Tr.So (below) is difference in (weighted mean) Trophic AA - Source AA for host or symb, per treatment

#########
wt.mean<-read.csv("data/wt.means.d15N.csv")
wt.mean.df<-aggregate(wt.mean~AA.cat+Fraction+Treat.Int, data=wt.mean, mean, na.rm=TRUE)

pd <- position_dodge(0.0) #offset for error bars
ggplot(wt.mean.df, aes(x=Treat.Int, y=wt.mean)) +
  geom_point(aes(color=Fraction, shape=AA.cat), size=3, position=pd) +
  coord_cartesian(ylim=c(8, 0))+ 
  ggtitle("weighted mean d15N") +
  scale_color_manual(values=c("coral", "springgreen3")) +
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  ylab(ylab(expression(paste(delta^{15}, N[AA], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/wt.mean.d15N.CSIA.pdf", height=5, width=8, encod="MacRoman")
  • delta trophic - source AA, showing wt.mean.d15N.TR.SO.CSIA
############
# delta trophic - source AA
wt.mean.df2<-aggregate(delt.Tr.So~AA.cat+Fraction+Treat.Int, data=wt.mean, mean, na.rm=TRUE)

ggplot(wt.mean.df2, aes(x=Treat.Int, y=delt.Tr.So)) +
  geom_point(aes(color=Fraction), size=3) +
  coord_cartesian(ylim=c(2, -5))+ 
  ggtitle("weighted mean d15N") +
  scale_color_manual(values=c("coral", "springgreen3")) +
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  ylab(ylab(expression(paste(delta^{15}, N[Trophic[AA]-Source [AA]], " (\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/wt.mean.d15N.TR.SO.CSIA.pdf", height=5, width=8, encod="MacRoman")
Sum V

Calculate Sum-V, McCarthy et al. 2007. The sum-V parameter is a proxy for total heterotrophic resynthesis. It is defined as the average deviation in the d15N values of the trophic amino acids Ala, Asp, Glu, Ile, Leu, and Pro.

  • showing d15N.sumV.CSIA
###########################
# dfN is dataframe
sV.df<-aggregate(d15N.value~AA.short+AA.cat+Fraction+Treat.Int, data=d15N.dat.long, mean, na.rm=TRUE)
sV.df.sd<-aggregate(d15N.value~AA.short+AA.cat+Fraction+Treat.Int, data=d15N.dat.long, sd, na.rm=TRUE)
colnames(sV.df.sd)[5]="SD"
sV.df$SD<-sV.df.sd$SD

# make dataframe for AA, that with su deviance = sum-V
sV.df2<-sV.df[c(sV.df$AA.short=="Ala" | sV.df$AA.short=="Glu" | sV.df$AA.short=="Asp" | 
                  sV.df$AA.short=="Ile" | sV.df$AA.short=="Leu" | sV.df$AA.short=="Pro"),]

write.csv(sV.df2, "sumV.csv")

sumVdf<-read.csv("data/sumV.csv")
sumVdf<-sumVdf[!(sumVdf$Treat.Int=="Plank"), ]

ggplot(sumVdf, aes(x=Treat.Int, y=sumV)) +
  geom_point(aes(color=Fraction), size=3) +
  coord_cartesian(ylim=c(2, 7))+ 
  ggtitle("sumV d15N") +
  scale_color_manual(values=c("coral", "springgreen3", "")) +
  scale_x_discrete(name ="Treatments", 
                   labels=c("Dark\nFed", "Light\nFed", "Light\nNot Fed")) +
  ylab(ylab(expression(paste(delta^{15}, N[Sum-V], "(\u2030, AIR)")))) +
  Fig.formatting

ggsave("figures/nitrogen/d15N.sumV.CSIA.pdf", height=5, width=8, encod="MacRoman")